package com.hnyfkj.jyindustry.biz.sysmemberinfo.sevice;

import org.springframework.stereotype.Service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.hnyfkj.jyindustry.biz.login.dto.ChangePasswordDto;
import com.hnyfkj.jyindustry.biz.sysmemberinfo.dto.SysMemberInfoDto;
import com.hnyfkj.jyindustry.biz.sysmemberinfo.dto.SysMemberInfoInsertDto;
import com.hnyfkj.jyindustry.biz.sysmemberinfo.dto.SysMemberInfoQueryDto;
import com.hnyfkj.jyindustry.biz.sysmemberinfo.dto.SysMemberInfoUpdateDto;
import com.hnyfkj.jyindustry.biz.sysmemberinfo.entity.SysMemberInfoEntity;
import com.hnyfkj.jyindustry.common.utils.PageUtils;
import com.hnyfkj.jyindustry.common.utils.Response;

/**
 * @author zjq
 *
 * @Description
 *
 * @date 2020年12月10日
 */
@Service
public interface SysMemberInfoService extends IService<SysMemberInfoEntity> {

    /**
     * 新增
     *
     * @param sysMemberInfo
     * @return
     */
    int insert(SysMemberInfoInsertDto sysMemberInfo);

    /**
     * 修改
     *
     * @param sysMemberInfo
     * @return
     */
    int update(SysMemberInfoUpdateDto sysMemberInfo);

    /**
     * 查询分页列表数据
     *
     * @param queryDto
     * @return
     */
    PageUtils<SysMemberInfoDto> selectListDto(SysMemberInfoQueryDto queryDto);

    /**
     * 批量逻辑删除
     *
     * @param
     * @return
     */
    int delectBatch(String[] memberIds);

    /**
     * 根据用户名获取用户信息
     *
     * @param sysMemberInfoEntity
     * @return
     */
    SysMemberInfoEntity getByUserName(SysMemberInfoEntity sysMemberInfoEntity);

    /**
     * 退出登录
     *
     * @param token
     */
    void logout(String token);
    
    /**
     * 密码加密
     * 
     * @param credentials
     * @param salt
     */
    String passwordEncoder(String credentials, String salt);
    
    /**
     * 修改密码
     *
     * @return
     */
    Response changePassword(ChangePasswordDto changePasswordDto);
    
    /**
     * @author zhujq
     * @date 2021年3月20日 上午11:03:33 
     * @Description 还原密码
     */
    Response<String> initPassword(String id);
}
